// 编写一个函数，接受一个参数n，输出，
// 上三角
//                          1
//                        2 1
//                      3 2 1
//                    4 3 2 1
//                  5 4 3 2 1
//                6 5 4 3 2 1
//              7 6 5 4 3 2 1
//            8 7 6 5 4 3 2 1
//          9 8 7 6 5 4 3 2 1
//       10 9 8 7 6 5 4 3 2 1
//    11 10 9 8 7 6 5 4 3 2 1
// 12 11 10 9 8 7 6 5 4 3 2 1

// n为正整数。要求数字必须对齐
package main

import (
	"fmt"
	"strconv"
	"strings"
)

func numberTriangle(n int) {
	if n < 0 {
		panic("please input positive number")
	}
	s := make([]int, 0, n)
	for i := n; i > 0; i-- {
		s = append(s, i)
	}
	texts := fmt.Sprint(s)
	for i := n - 1; i >= 0; i-- {
		fmt.Printf("%"+strconv.Itoa(len(texts))+"s\n", strings.Trim(fmt.Sprint(s[i:]), "[]"))
	}
}

func main() {
	numberTriangle(12)
}
